package com.atguigu.ai.controller;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author self
 * @Date 2025/7/20 13:41
 * @Describe
 */
/**
 * chatController类负责处理与聊天相关的HTTP请求
 * 它使用了ChatClient来处理具体的聊天逻辑
 */
@RestController
public class ChatController {

    // ChatClient实例，用于发送和接收聊天消息
    private final ChatClient chatClient;

    /**
     * chatController的构造方法
     * 使用ChatClient.Builder来构建ChatClient实例
     *
     * @param chatClientBuilder ChatClient的构建器，用于构建ChatClient实例
     */
    public ChatController(ChatClient.Builder chatClientBuilder) {
        this.chatClient = chatClientBuilder.build();
    }

    /**
     * 处理GET请求的聊天接口
     * 如果请求参数中没有提供msg，则使用"你是谁"作为默认消息
     *
     * @param message 用户发送的消息，通过请求参数msg获取
     * @return 聊天机器人的回复消息
     */
    @GetMapping("/chat")
    public String chat(@RequestParam(value = "msg", defaultValue = "你是谁") String message) {
        // 调用ChatClient的prompt方法开始一次聊天会话，发送用户消息并获取回复内容
        return chatClient.prompt()    //提示词
                .user(message) //用户输入信息
                .call() //请求大模型
                .content(); //返回文本
    }
}

